import React from 'react'
import Hoccom from './hoc/hoccom'
import addFn from './hoc/hoccom'
/* 
1.什么是高阶函数 学过哪些高阶函数
一个函数执行 接受一个函数为参数 或者 返回一个函数

[].map(()=>{})
[].filter(()=>{}) 
...
let hanshu = fn.bind()
bind 是一个常见的方法或函数，主要用于绑定函数（或方法）的执行上下文（this 的值）


2.什么是高阶组件 使用场景是什么
本质就是一个高阶函数 接收一个组件为参数 返回一个加强后的新组件

学过的高阶组件?
let NewApp = withRouter(App)
Route.memo


3.高阶函数和高阶组件区别
高阶函数:一个函数执行 接受一个函数为参数 或者 返回一个函数
高阶组件:本质就是一个高阶函数 接收一个组件为参数 返回一个加强后的新组件


4.什么是装饰者模式
在不改变对象(组件本身)本地是前提下 给这个对象添加公共方法和属性

5.高阶函数源自于那种设计模式

*/

function App(props) {
  console.log(props);
  
  return (
    <div>
      我是app组件
      <p>{props.qina}</p>
      <button onClick={()=>{
        props.addqian()
      }}>加薪</button>
    </div>
  )
}

let NewApp = addFn(App)

export default NewApp